<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../vue.js/vue.js"></script>
    <script src="../vue.js/dayjs.min.js"></script>
</head>
		<!-- 
			过滤器：
				定义：对要显示的数据进行特定格式化后再显示（适用于一些简单逻辑的处理）。
				语法：
						1.注册过滤器：Vue.filter(name,callback) 或 new Vue{filters:{}}
						2.使用过滤器：{{ xxx | 过滤器名}}  或  v-bind:属性 = "xxx | 过滤器名"//不可以使用v-model等指令
				备注：
						1.过滤器也可以接收额外参数、多个过滤器也可以串联
						2.并没有改变原本的数据, 是产生新的对应的数据
		-->
		<!-- 准备好一个容器-->
<body>
    <div id="root">
        <h2>显示格式化后的时间</h2>
        <!-- 计算属性实现 -->
        <h3>现在是：{{fmtTime}}</h3>
           <!--   methods实现 -->
        <h3>现在是：{{getFmtTime()}}</h3>
        <!-- 过滤器实现 -->
        <h3>现在是：{{time|timeFormater}}</h3>
       <!-- 多个过滤器串联使用实现（传参） -->
        <h3>现在是：{{time | timeFormater|mySlice}}</h3><!-- 传参过程中按层级执行time先传入timeFormater过滤器中进行格式化再传入mySlice过滤器截取前四位 -->
        <h3>现在是：{{time | timeFormater('YYYY年MM月DD日')}}</h3>
        <h3>{{msg | mySlice}}</h3>
       <h3 :x="msg | mySlice">不是插值语法截取数据得前四位</h3>
    </div>
    <div id="root2">
        <h2>{{msg | mySlice}}</h2>
    </div>
</body>
<script>


  /*   定义全局过滤器 */
    Vue.filter('mySlice',function(value){//Vue,filter('过滤器得名称'，函数中参数默认第一个为value)
        return value.slice(0,4);
    })//截取数据得前四位
    new Vue({
        el:'#root',
        data:{
            time:new Date(),
            msg:'轨迹正在学前端',
        },
        computed:{
            fmtTime(){
                return dayjs(this.time).format('YYYY年MM月DD日 HH:mm:ss');//格式中字母大小写不能随意改变
            }
        },
        methods: {
            getFmtTime(){
                return dayjs(this.time).format('YYYY年MM月DD日 HH:mm:ss');
            }
        },
        filters:{
            timeFormater(value,str='YYYY年MM月DD日 HH:mm:ss'){
                // console.log('@',value)
                return dayjs(value).format(str);
            }
        }
    })
    new Vue({
			el:'#root2',
			data:{
				msg:'hello,atguigu!'
			}
		})
</script>
</html>